import unittest
import paramunittest

from ltd.hanamaki.python.unittest.paramter.ioutil.FileUtils import get_file_data
from ltd.hanamaki.python.unittest.paramter.ioutil.FileUtils import get_file_excel_data
from util.MySQLConnectorPythonUtil import get_sql_data

"""
    1、参数化的使用 ：ParamUnittest
    想要使用  ParamUnittest 做 参数化 ，需要下载对应的 模块 pip install ParamUnittest
"""


# 通过外部函数 读取所需要的数据 传递给 数据源进行使用
def sql_data():
    return get_sql_data('python_test_table', 'username', 'password')


# 通过外部函数 读取所需要的数据 传递给 数据源进行使用
def file_data():
    return get_file_data('ioutil/data.txt')


# 通过外部函数 读取所需要的数据 传递给 数据源进行使用
def file_excel_data():
    return get_file_excel_data('data.xlsx')


# 数据源
@paramunittest.parametrized(
    ('hanamaki', '123456'),
    ('andy', '456789'),
    ('jojo', '789123'),
    {'username': 'rose', 'password': 'jack'},
    {'username': 'yutou', 'password': '123456'},

    sql_data()[0],
    sql_data()[1],
    sql_data()[2],

    file_data()[0],
    file_data()[1],

    file_excel_data()[0],
    file_excel_data()[1]

)
# 测试类
class MyTestCase(unittest.TestCase):

    def setParameters(self, username, password):
        self.a = username
        self.b = password

    def test_login(self):
        print('username：', self.a)
        print('password：', self.b)


if __name__ == '__main__':
    unittest.main()
